#ifndef MODELMANAGER_H
#define MODELMANAGER_H

#include <broadcast.h>
#include <model.h>
#include <vector>
#include <string>
#include <systemSettingMessage.h>
#include <attackerMessage.h>
#include <attackTargetMessage.h>
#include <attacker.h>
#include <arpAttacker.h>
#include <synAttacker.h>
#include <smurfAttacker.h>

namespace Model {

  class ModelManager
  {
    std::map<std::string,model *> models;
    std::map<AttackType,Attacker*> attackers;
  public:
    ModelManager();
    ~ModelManager();

    bool ReceiveBroadcast(Controller::Broadcast *broadcast);
    bool AddModel(std::string modelName,model *newModel);
    int ModelNum();
    bool ReLoadConf();
  };

}

#endif
